Many businesses that sell products provide customers with a number of options that can be selected by the customer to configure a particular product. Generally, the selection of one or more options determines particular modules that are required for assembly of the product in order to provide the functionality described by the selected option(s). Modules may include parts, plans, tools, or software that are included in the product or used to assemble the product. Interrelationships between configuration options are such that the selection of a particular option may depend upon the selection of one or more other options. In addition, the selection of one or more options may preclude the selection of certain other options. In a product containing large numbers of modules, and where numerous options are presented to customers, the selection of options and production of a customized product configured according to the options selected is complex. The production of the product necessitates knowledge of the module requirements based upon the selected options, wherein the actual module requirements depend upon the particular combination of options selected. In the production of a product having a complex manufacturing system, knowledge of the relationships between options and the requirements resulting from the selection of options is often decentralized and not automated. Collating the necessary information requires reference to multiple individuals or other sources of information, which is expensive and time consuming.
The commercial aircraft industry provides an example of complex configurable products and customers who select from many options to customize the products. For example, the selection of a particular aircraft engine depends on particular functional requirements of the airplane, as well as customer preferences of engine manufacturers. A customer that desires an aircraft capable of takeoffs and landings at high altitude is restricted to a selection of aircraft engines that satisfy this requirement. A preference for a particular engine manufacturer further limits the possible selections of an aircraft engine. A customer may also desire an aircraft capable of flying long distances. Since aircraft engines have different capabilities, selection of a particular option may preclude selection of a particular second option. Similarly, selection of a particular functional option, such as the ability to fly long distances, may require the selection of a related option, such as an option for a smaller number of passenger seats, or a smaller cargo compartment. Once a particular option of an aircraft engine is selected, there follows a requirement for a particular module of parts necessary to accommodate the aircraft engine.
Many people are involved in designing and building a commercial aircraft. Various engineers have particular knowledge of portions of the aircraft, such as the aircraft engine, the aircraft cockpit, or the interior of the aircraft. A customer configuring an aircraft is presented with the selectable options and the relationship between the options. Providing this information to a customer may involve several people and the transferring of information from one person to another. Once the configuration discussions are complete, the requirements of modules that are to be included in the aircraft must be provided to the manufacturing teams.
As will be readily appreciated from the foregoing description, a need exists for a graphical representation of product information that allows a user to specify product options and, based on the user specifications, quickly and accurately determines the modules required to make up the chosen product configuration. Such a system optimally provides the user with a product "Map" that displays available product options and the constraints associated with particular choices.
A rules-based system is a data processing system that operates on some domain of knowledge. Knowledge about the domain and the logic that experts employ with respect to the domain are acquired and represented by a set of rules. An inference engine receives the set of rules and processes them in order to provide rational deductions from the rules. Rules-based systems are well known in the art, and inference engines are commercially available.
The acquisition of information and the creation of rules to be employed within a rules-based system is a complex task. A need exists for an improved method of acquiring information pertaining to product configurations and the generation of rules that can be input to an inference engine. A rules-based system employing such an improved method of information acquisition preferably will be used to validate product options selected by a customer and to assist in the configuration of a product in accordance with the selected product options.